package com.laolu.icon.entity;

import com.sun.jna.platform.win32.WinDef.RECT;
import lombok.Data;

@Data
public class IconInfo {
	/**
	 * 快捷方式标题
	 */
	private String title;
	/**
	 * 快捷方式类型
	 */
	private ShortcutType type;
	/**
	 * 快捷方式指向的目标文件路径（如 C:\Windows\notepad.exe）
	 */
	private String targetPath;
	/**
	 * 图标路径和索引（格式如 "C:\path\to\icon.dll,0"）
	 */
	private String iconLocation;
	/**
	 * 目标程序启动时的工作目录
	 */
	private String workingDirectory;
	/**
	 * 传递给目标程序的命令行参数（如 "file.txt"）
	 */
	private String arguments;
	/**
	 * 快捷方式的描述文本（鼠标悬停时显示）
	 */
	private String description;
	/**
	 * 启动窗口样式： 1=正常窗口，3=最大化，7=最小化
	 */
	private int windowStyle;
	/**
	 * 快捷键组合（如 "Ctrl+Alt+N"，需符合 Windows 快捷键格式）
	 */
	private String hotkey;
	/**
	 * 快捷方式文件自身的完整路径（即 .lnk 文件路径）
	 */
	private String fullName;
	/**
	 * 目标路径的相对路径（如果设置过）
	 */
	private String relativePath;
	/**
	 * 扩展目标对象（某些场景下可能返回复杂对象，需进一步解析）
	 */
	private Object target;
	/**
	 * 类似 Target，用于解析符号链接或网络路径
	 */
	private Object linkTarget;
	/**
	 * 访问系统特殊文件夹（如 Desktop、StartMenu，需配合其他方法使用）
	 */
	private Object specialFolders;
	/**
	 * 图标在桌面上的显示位置
	 */
	private RECT rect;
	
	
	public enum ShortcutType {
		/**
		 * 快捷方式
		 */
		Shortcut,
		/**
		 * 符号链接
		 */
		SymbolicLink,
		/**
		 * 网络路径
		 */
		NetworkPath,
		/**
		 * 文件
		 */
		File,
		/**
		 * 文件夹
		 */
		Folder;
	}
}
